﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection.Emit;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
using UFIDA.U9.Base.FlexField.DescFlexField;

namespace UFIDA.U9C.Cust.ZL.OpenAPI.PO.DTO
{
    public class POSrcReqDTO
    {
        public string OtherID { get; set; } //		srting			第三方订单标志		
        public string PrivateDescSeg1 { get; set; } //		srting			SRM订单号		
        public string DocNo { get; set; }   //	是	srting			单据号		
        public string BusinessDate { get; set; }    //	是	DateTime			日期		
        public string DocumentType { get; set; }    //	是	string			单据类型编码		"PO01 普通采购         PO02 固定资产采购        PO03 零星物料采购PO04 进口物料采购PO14 全程委外订单"


        //public string			{get;set;}	//							
        public Supplier1 Supplier { get; set; }//	是	srting			供应商编码			是	srting			供应商名称

        //public string
        //{ get; set; }	//							
        //public string
        //{ get; set; }	//							
        public string org_code { get; set; }    //		srting			组织编码		
        public string org_name { get; set; }    //		srting			组织名称		
        public AC1 ac { get; set; }   //		srting			本币编码		
                                     //public string
                                     //{ get; set; }	//							
        public TC1 tc { get; set; }  //		srting			交易币编码		
                                    //public string
                                    //{ get; set; }	//							
        public string TCToACExchRate { get; set; }  //	是	"decimal"			汇率		
        public string TotalMnyFC { get; set; }  //		decimal			单头价税合计		
                                                //public string Supplier.code { get; set; }	//		string			供应商编码		
                                                //public string Supplier.name { get; set; }	//		string			供应商名称		
        public Boolean IsPriceIncludeTax { get; set; }   //		IsPriceIncludeTax			价格含税		
                                                        //public string
                                                        //{ get; set; }	//					附件		单点登录的方式跳转到srm系统查看附件
        public string POMemos { get; set; } //		string			单头备注		
        public string CreateBy { get; set; }    //	是	string			制单人		接口调用账号：srm
        public string PrivateDescSeg2 { get; set; } //		string			SRM创建人名称		
        public PurOper purOper { get; set; }    //	是	string			业务员编码		

        public List<SrcPOLine> POLines { get; set; }

        public List<TitleCharge> exe_pur_order_expense_b { get; set; }

        public List<POStage> poStages { get; set; }

        /// <summary>
        /// 头扩展
        /// </summary>
        public DescFlexSegmentsData HeadDescFlexField
        {
            get; set;
        }
    }

    public class Supplier1
    {
        public string Code { get; set; }
        public string Name { get; set; }
    }
    public class AC1
    {
        public string Code { get; set; }
    }
    public class TC1
    {
        public string Code { get; set; }
    }

    public class PurOper
    {
        public string Code { get; set; }
        public string Name { get; set; }
    }

    public class SrcPOLine
    {
        public string DocLineNo { get; set; }   //		string			行号		
        public string ItemCode { get; set; }    //		string			料号		
                                                //public string			{get;set;}   //					品名		根据料号自动带出
                                                //public string			{get;set;}	//					库存分类		
                                                //public string
                                                //{ get; set; }	//					规格		
        public string org_code { get; set; }    //					组织		
        public string Wh_code { get; set; } //		string			存储地点编码		
        public string Wh_name { get; set; } //		string			存储地点名称		
        public string DeliveryDate { get; set; }    //		DateTime			要求交货日期		
        public string SrcDocPRDocNo { get; set; }   //		string			来源单号		
        public string SrcDocPRLineNo { get; set; }  //		string			来源行号		
        public string reqQtyTU { get; set; }    //		decimal			数量		
        public string PriceUOM_code { get; set; }   //		string			计价单位编码		
        public string PriceUOM_name { get; set; }   //		string			计价单位名称		
                                                    //public string
                                                    //{ get; set; }	//							
                                                    //public string
                                                    //{ get; set; }	//							
        public string TradeUOM_code { get; set; }   //		string			采购单位编码		
        public string TradeUOM_name { get; set; }   //		string			采购单位名称		
                                                    //public string
                                                    //{ get; set; }	//							
                                                    //public string
                                                    //{ get; set; }	//							
                                                    //public string
                                                    //{ get; set; }	//	是						
                                                    //public string
                                                    //{ get; set; }	//	是				行删除		
        public string FinallyPriceTC { get; set; }  //	是	decimal			最终价		
                                                    //public string
                                                    //{ get; set; }	//							
        public string TaxSchedule_code { get; set; }    //	否				行税码		
        public string TaxSchedule_name { get; set; }    //	是				含税码名称		
        public string TaxRate { get; set; } //	是				税率		
        public string country_id { get; set; }  //	国家/地区				国家/地区		传编码
        public string province_id { get; set; } //	省份				省份		传编码
        public string city_id { get; set; } //	城市				城市		传编码
        public string address { get; set; } //	详细地址				详细地址		
        public string contact { get; set; } //	联系人				联系人		
        public string contact_way { get; set; } //	联系方式				联系方式		
        public string remark { get; set; }	//	订单备注						

        public List<OutSourceInfo> osInfo { get; set; }//委外料信息
        /// <summary>
        /// 订单明细价格费用
        /// </summary>
        public List<OrderDetailPrice> orderDetailPrices { get; set; }

        /// <summary>
        /// 行扩展
        /// </summary>
        public DescFlexSegmentsData DescFlexField
        {
            get; set;
        }
    }

    public class OutSourceInfo
    {
        public string DocLineNo { get; set; }   //		int				
        public string PickLineNo { get; set; }  //		Int32			备料行号	
        public string ItemCode { get; set; }    //		string			料号	
        public string ActualReqQty { get; set; }    //		decimal			实际需求数量	
        public string IssueUOM { get; set; }    //		string			发料单位	
        public string SupplyOrg { get; set; }   //		string			供应组织	
        public string PlanReqDate { get; set; } //		date			计划需求日期	
                                                //public string			{get;set;}   //						

    }

    public class TitleCharge
    {
        public string item_no { get; set; } //	行项目号				单头费用行号
        public string condition_type_dk { get; set; }   //	条件类型				费用项目
        public string amount { get; set; }  //	金额				含税费用
        public string tax_code { get; set; }    //	税码				税率编码
        public string currency_code { get; set; }   //	货币				费用币种
        public string unit_code { get; set; }   //	单位				
        public string supplier_code { get; set; }	//	供应商				

    }

    /// <summary>
    /// 订单明细价格费用
    /// </summary>
    public class OrderDetailPrice
    {
        /// <summary>
        /// 行项目号					
        /// </summary>
        public string item_no { get; set; } 
        public string condition_type_dk { get; set; }   //	条件类型					
        public string amount { get; set; }  //	金额					
        public string currency_code { get; set; }   //	货币					
        public string unit_code { get; set; }   //	单位					
        public string supplier_code { get; set; }	//	供应商					

    }

    public class POStage
    {
        public string item_no { get; set; } //	行项目号
        public string stage_name { get; set; }  //	阶段名称
        public string stage_remark { get; set; }    //	阶段说明
        public string confirm_type_dk { get; set; } //	阶段确认类型
        public string require_payment_flag { get; set; }    //	是否需付款
        public string payment_method_dk { get; set; }   //	付款方式
        public string payment_remark { get; set; }  //	付款说明
        public string payment_scale { get; set; }   //	付款比例%
        public string payment_amount { get; set; }	//	付款金额

    }

  
    }